Godot's 2D engine gets several improvements for upcoming 4.0
Improved Performance
Vulkan による改善がある。Vulkan は OpenGLよりも draw-call の cost がとても低い 他にも Godot 4.0 で内部の改善と最適化によってパフォーマンスの改善がなされている。
Improved 2D lighting
Godot 3.X で 2D Lighting がサポートされたものの、パフォーマンスの制約で使うのが難しかった。
Godot 4.0 では 全てのライトが single pass で描画されるのでパフォーマンスが改善された。
Improved 2D materials
2D でノーマルマッピングを行えるのは限定的だった。
4.0では、新しいテクスチャタイプの CanvasTexture が導入された。
このテクスチャタイプでは、通常のテクスチャの代わりに任意のノードやリソースで使用できて、normal だけでなく specular や shinness map も提供できる。
Directional 2D light and shadow support
追加して欲しいというリクエストの多かった Direction 2D light and shadow の機能が追加
CanvasGroup
3.x系の悩みを解消させるノードを追加
Spriteにシェーダーを適用したり、透明度を変更したりすると、各ノードがそれぞれ独自のdraw call をするため、効果が個別に適用される問題があった。
https://gyazo.com/50f8c0f42755e958c47ee735263fd540
新しい CanvasGroup ノードは、その子ノードの描画呼び出しをマージし、全体として効果を適用できるようにしている https://gyazo.com/8749a056f0937da0e56b53594f4d9b70
2D Masking / Clipping
もっと簡単に mask する機能はずっと求められていた
4.0 では、visibility セクションの clip children プロパティを使ったら簡単にマスクをかけられるようになる
https://gyazo.com/5de5aab34e88da2e7aebe59ad5b06d13
Signed Distance Fields for 2D
4.0 では、これを2Dでもサポートされるようになった。
ブログ記事の中で、shader 実装例が載っている
Future
他にも Tileset の大幅更新などある